import pagination from "@/components/Pagination";
import { getCars, getCompanyItems } from "@/business-components/select-car/select-car.service";
import { alertMessage } from "@/utils/utils";

export default {
  name: 'select-province',
  components: { pagination },
  props: {
    deviceId: {
      required: true,
      type: String | Number
    }
  },
  data() {
    return {
      recordNum: 0, // 分页组件默认的页数, 分页里的select默认10, 20, 50
      totalNum: 0, // 数据总数
      pageNum: 1, // 页数
      showDialog: true, // 是否显示弹窗
      currentRow: null, // 选中当前行
      searchCriteria: {
        equipmentId: this.deviceId
      }, // 搜索条件
      companies: [], // 运输单位
      checkedRows: [], // 选中行
      data: [] // 网点数据列表
    }
  },
  computed: {
    showDialogFlag: {
      get() {
        return this.showDialog
      },
      set(val) {
        this.$emit('update:showDialog', val)
      }
    }
  },
  created() {
    // 第一次加载获取网点列表
    this.getDataList();
    this.getCompanyList();
  },
  methods: {
    // 关闭dialog时需要告诉父组件隐藏弹窗
    closeDialog() {
      this.showDialog = false;
      this.$emit('close', true);
    },

    // 处理选中行
    handleCurrentChange(val) {
      this.currentRow = val;
    },

    // 提交选中数据给父节点
    submit() {
      if (this.checkedRows.length == 0) {
        // alertMessage('请选择一台车辆', 'warning');
        this.$emit('submit', this.checkedRows);
        this.showDialogFlag = false;
      } else {
        if (this.checkedRows.length > 1) {
          alertMessage('只能选择一台车辆', 'warning');
        } else {
          this.$emit('submit', this.checkedRows);
          this.showDialogFlag = false;
        }
      }
    },

    // 根据条件搜索
    search() {
      this.pageNum = 1;
      this.getDataList();
    },

    // 获取数据
    getDataList() {
      this.searchCriteria.pageNum = this.pageNum;
      this.searchCriteria.recordNum = this.recordNum;
      getCars(this.searchCriteria).then(res => {
        this.data = res.data;
        this.data.forEach((item, index) => {
          if (item.isEquip == '1') {
            setTimeout(() => {
              this.$refs.carTable.toggleRowSelection(this.data[index]);
            }, 200);
          }
        })
      });
    },

    // 重置搜索
    reset() {
      this.pageNum = 1;
      this.searchCriteria = {};
      this.getDataList();
    },

    // 处理checkbox选中行数据
    handleSelectionChange(val) {
      this.checkedRows = val;
    },

    // 运输单位列表
    getCompanyList() {
      getCompanyItems().then(res => {
        this.companies = res.data;
      });
    }
  }
}
